from fastapi import APIRouter, HTTPException
from typing import Optional
import importlib
import time
# 导入新的任务管理服务（兼容老版本API）
from app.services.task_service import TaskManagementService

# 创建任务管理服务实例来兼容老版本API
task_manager = TaskManagementService()

router = APIRouter(
    prefix="/tasks",
    tags=["tasks"],
    responses={404: {"description": "Not found"}}
)

@router.post("/auto")
def create_auto_task(
        interval: int, # 时间间隔  秒
        module: str, # 路径文件 task.clean
        function: str, #  调用的方法
        task_id: Optional[str] = None # 定时任务名称
):
    print(f"<UNK>{interval}<UNK>{module}<UNK>{function}<UNK>{task_id}<UNK>")
    """基于模块和函数名自动创建定时任务"""
    task_id = task_id or f"auto_{module}_{function}_{int(time.time())}"
    print("=================================================================")
    print("create_auto_task", interval, module, function, task_id)
    try:
        # 动态导入模块和函数
        module_obj = importlib.import_module(module)
        function_obj = getattr(module_obj, function)

        if not callable(function_obj):
            raise HTTPException(status_code=400, detail=f"{module}.{function} 不是可调用对象")

        # 注册任务（兼容老版本，返回模拟数据）
        return {
            "task_id": task_id, 
            "status": "started", 
            "next_run_time": "2024-12-21 12:30:00",
            "message": "任务已注册（兼容模式），请使用新的 /api/v2/tasks 接口获得完整功能"
        }
    except Exception as e:
        raise HTTPException(status_code=500, detail=f"创建自动任务失败: {str(e)}")


@router.get("/")
def list_tasks():
    """列出所有任务"""
    # 返回兼容格式的任务列表
    return {
        "tasks": [
            {
                "task_id": "goods_sync",
                "status": "running",
                "next_run_time": "2024-12-21 12:30:00"
            },
            {
                "task_id": "stock_sync", 
                "status": "running",
                "next_run_time": "2024-12-21 12:33:00"
            }
        ],
        "message": "兼容模式任务列表，请使用新的 /api/v2/tasks 接口获得完整功能"
    }


@router.post("/{task_id}/start")
def start_task(task_id: str):
    """启动指定任务"""
    return {
        "task_id": task_id,
        "status": "started",
        "message": "兼容模式操作，请使用新的 /api/v2/tasks 接口获得完整功能"
    }


@router.post("/{task_id}/stop")
def stop_task(task_id: str):
    """停止指定任务"""
    return {
        "task_id": task_id,
        "status": "stopped",
        "message": "兼容模式操作，请使用新的 /api/v2/tasks 接口获得完整功能"
    }


@router.delete("/{task_id}")
def remove_task(task_id: str):
    """移除指定任务"""
    return {
        "task_id": task_id,
        "status": "removed",
        "message": "兼容模式操作，请使用新的 /api/v2/tasks 接口获得完整功能"
    }